/*
*  Copyright 2019-2025 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.modules.account.domain;

import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

/**
* @description /
* @author lzw
* @date 2025-04-24
**/
@Data
@TableName("account_ac51")
public class AccountAc51 implements Serializable {

    @TableId(value = "aaz117")
    @ApiModelProperty(value = "在职人员账户年度台账ID")
    private String aaz117;

    @NotBlank
    @ApiModelProperty(value = "在职个人账户ID")
    private String aaz116;

    @NotBlank
    @ApiModelProperty(value = "账户类型")
    private String aaa119;

    @ApiModelProperty(value = "新老个人账户类型")
    private String aaa513;

    @NotNull
    @ApiModelProperty(value = "账户计息截止日期")
    private BigDecimal aic376;

    @NotBlank
    @ApiModelProperty(value = "人员编号")
    private String aac001;

    @NotNull
    @ApiModelProperty(value = "年度")
    private BigDecimal aae001;

    @ApiModelProperty(value = "截至上年末个人账户单位缴费部分划转累计本息")
    private BigDecimal aae849;

    @ApiModelProperty(value = "截至上年末个人账户单位缴费部分划转本息在本年产生的利息")
    private BigDecimal aae259;

    @ApiModelProperty(value = "本年单位缴费部分划入个人账户本金")
    private BigDecimal aae262;

    @ApiModelProperty(value = "本年单位缴费部分划入个人账户本金所产生的利息")
    private BigDecimal aae263;

    @ApiModelProperty(value = "截至本年末个人账户单位缴费部分划转累计本息")
    private BigDecimal aae850;

    @ApiModelProperty(value = "截至上年末个人账户个人缴费部分划转累计本息")
    private BigDecimal aae851;

    @ApiModelProperty(value = "截至上年末个人账户个人缴费部分划转本息在本年产生的利息")
    private BigDecimal aae260;

    @NotNull
    @ApiModelProperty(value = "本年个人缴费部分划入个人账户本金")
    private BigDecimal aae264;

    @NotNull
    @ApiModelProperty(value = "本年个人缴费部分划入个人账户本金所产生的利息")
    private BigDecimal aae265;

    @NotNull
    @ApiModelProperty(value = "截至本年末个人账户个人缴费部分划转累计本息")
    private BigDecimal aae852;

    @ApiModelProperty(value = "截至上年末个人账户其他部分划转累计本息")
    private BigDecimal aae853;

    @ApiModelProperty(value = "截至上年末个人账户其他部分划转本息在本年产生的利息")
    private BigDecimal aae854;

    @ApiModelProperty(value = "本年其他部分划入个人账户本金")
    private BigDecimal aae855;

    @ApiModelProperty(value = "本年其他部分划入个人账户本金所产生的利息")
    private BigDecimal aae856;

    @ApiModelProperty(value = "截至本年末个人账户其他部分划转累计本息")
    private BigDecimal aae857;

    @NotNull
    @ApiModelProperty(value = "本年本金总和")
    private BigDecimal aae873;

    @NotNull
    @ApiModelProperty(value = "本年利息总和")
    private BigDecimal aae874;

    @ApiModelProperty(value = "本年补缴历年本金")
    private BigDecimal aae875;

    @ApiModelProperty(value = "本年补缴历年利息")
    private BigDecimal aae876;

    @NotNull
    @ApiModelProperty(value = "利率")
    private BigDecimal aaa031;

    @NotBlank
    @ApiModelProperty(value = "锁定标志")
    private String aae825;

    @NotBlank
    @ApiModelProperty(value = "当前有效标志")
    private String aae100;

    @NotBlank
    @ApiModelProperty(value = "人员参保关系ID")
    private String aaz159;

    @ApiModelProperty(value = "备注")
    private String aae013;

    @ApiModelProperty(value = "经办人")
    private String aae011;

    @ApiModelProperty(value = "经办时间")
    private BigDecimal aae036;

    @ApiModelProperty(value = "参保地行政区划代码")
    private String aab359;

    public void copy(AccountAc51 source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
